package com.ruoyi.system.service;

import java.util.List;

import com.ruoyi.system.domain.Delivery;
import com.ruoyi.system.domain.exp.DeliveryExport;
import com.ruoyi.system.domain.exp.SendExport;
import com.ruoyi.system.domain.res.deliveryDetail.DeliveryDay_res;
import com.ruoyi.system.domain.vo.DeliveryVO;

/**
 * 采购单Service接口
 *
 * @author ruoyi
 * @date 2024-09-05
 */
public interface IDeliveryService {
    /**
     * 查询采购单
     *
     * @param id 采购单主键
     * @return 采购单
     */
    public DeliveryVO selectDeliveryById(Long id);

    /**
     * 查询采购单列表
     *
     * @param delivery 采购单
     * @return 采购单集合
     */
    public List<Delivery> selectDeliveryList(Delivery delivery);

    /**
     * 根据日期查询配送单
     */
    public List<DeliveryDay_res> selectDeliveryDay(Delivery delivery);

    /**
     * 查询采购单列表_export
     *
     * @param delivery 采购单
     * @return 采购单集合
     */
    public List<DeliveryExport> selectDeliveryList_forExport(Delivery delivery);

    /**
     * 查询采购单列表_sendExport
     *
     * @param delivery 采购单
     * @return 采购单集合
     */
    public List<SendExport> selectDeliveryList_forSendExport(Delivery delivery);

    /**
     * 新增采购单
     *
     * @param delivery 采购单
     * @return 结果
     */
    public int insertDelivery(Delivery delivery);

    /**
     * 修改采购单
     *
     * @param delivery 采购单
     * @return 结果
     */
    public int updateDelivery(Delivery delivery);

    /**
     * 批量删除采购单
     *
     * @param ids 需要删除的采购单主键集合
     * @return 结果
     */
    public int deleteDeliveryByIds(Long[] ids);

    /**
     * 删除采购单信息
     *
     * @param id 采购单主键
     * @return 结果
     */
    public int deleteDeliveryById(Long id);

    /**
     * 竞标成功生成采购单
     */
    public void competeSuccess(Long logId);

    /**
     * 竞标结束逻辑
     */
    public void projectEnd(Long projectId);

}
